let keyobj;

//  keyobj = {
//   abort: UIEvent,
//   animationcancel: AnimationEvent,
//   animationend: AnimationEvent,
//   animationiteration: AnimationEvent,
//   animationstart: AnimationEvent,
//   auxclick: MouseEvent,
//   beforeinput: InputEvent,
//   beforetoggle: Event,
//   blur: FocusEvent,
//   cancel: Event,
//   canplay: Event,
//   canplaythrough: Event,
//   change: Event,
//   click: MouseEvent,
//   close: Event,
//   compositionend: CompositionEvent,
//   compositionstart: CompositionEvent,
//   compositionupdate: CompositionEvent,
//   contextmenu: MouseEvent,
//   copy: ClipboardEvent,
//   cuechange: Event,
//   cut: ClipboardEvent,
//   dblclick: MouseEvent,
//   drag: DragEvent,
//   dragend: DragEvent,
//   dragenter: DragEvent,
//   dragleave: DragEvent,
//   dragover: DragEvent,
//   dragstart: DragEvent,
//   drop: DragEvent,
//   durationchange: Event,
//   emptied: Event,
//   ended: Event,
//   error: ErrorEvent,
//   focus: FocusEvent,
//   focusin: FocusEvent,
//   focusout: FocusEvent,
//   formdata: FormDataEvent,
//   gotpointercapture: PointerEvent,
//   input: Event,
//   invalid: Event,
//   keydown: KeyboardEvent,
//   keypress: KeyboardEvent,
//   keyup: KeyboardEvent,
//   load: Event,
//   loadeddata: Event,
//   loadedmetadata: Event,
//   loadstart: Event,
//   lostpointercapture: PointerEvent,
//   mousedown: MouseEvent,
//   mouseenter: MouseEvent,
//   mouseleave: MouseEvent,
//   mousemove: MouseEvent,
//   mouseout: MouseEvent,
//   mouseover: MouseEvent,
//   mouseup: MouseEvent,
//   paste: ClipboardEvent,
//   pause: Event,
//   play: Event,
//   playing: Event,
//   pointercancel: PointerEvent,
//   pointerdown: PointerEvent,
//   pointerenter: PointerEvent,
//   pointerleave: PointerEvent,
//   pointermove: PointerEvent,
//   pointerout: PointerEvent,
//   pointerover: PointerEvent,
//   pointerup: PointerEvent,
//   progress: ProgressEvent,
//   ratechange: Event,
//   reset: Event,
//   resize: UIEvent,
//   scroll: Event,
//   scrollend: Event,
//   securitypolicyviolation: SecurityPolicyViolationEvent,
//   seeked: Event,
//   seeking: Event,
//   select: Event,
//   selectionchange: Event,
//   selectstart: Event,
//   slotchange: Event,
//   stalled: Event,
//   submit: SubmitEvent,
//   suspend: Event,
//   timeupdate: Event,
//   toggle: Event,
//   touchcancel: TouchEvent,
//   touchend: TouchEvent,
//   touchmove: TouchEvent,
//   touchstart: TouchEvent,
//   transitioncancel: TransitionEvent,
//   transitionend: TransitionEvent,
//   transitionrun: TransitionEvent,
//   transitionstart: TransitionEvent,
//   volumechange: Event,
//   waiting: Event,
//   webkitanimationend: Event,
//   webkitanimationiteration: Event,
//   webkitanimationstart: Event,
//   webkittransitionend: Event,
//   wheel: WheelEvent,
// },

//  keyobj = {
//   a: HTMLAnchorElement,
//   abbr: HTMLElement,
//   address: HTMLElement,
//   area: HTMLAreaElement,
//   article: HTMLElement,
//   aside: HTMLElement,
//   audio: HTMLAudioElement,
//   b: HTMLElement,
//   base: HTMLBaseElement,
//   bdi: HTMLElement,
//   bdo: HTMLElement,
//   blockquote: HTMLQuoteElement,
//   body: HTMLBodyElement,
//   br: HTMLBRElement,
//   button: HTMLButtonElement,
//   canvas: HTMLCanvasElement,
//   caption: HTMLTableCaptionElement,
//   cite: HTMLElement,
//   code: HTMLElement,
//   col: HTMLTableColElement,
//   colgroup: HTMLTableColElement,
//   data: HTMLDataElement,
//   datalist: HTMLDataListElement,
//   dd: HTMLElement,
//   del: HTMLModElement,
//   details: HTMLDetailsElement,
//   dfn: HTMLElement,
//   dialog: HTMLDialogElement,
//   div: HTMLDivElement,
//   dl: HTMLDListElement,
//   dt: HTMLElement,
//   em: HTMLElement,
//   embed: HTMLEmbedElement,
//   fieldset: HTMLFieldSetElement,
//   figcaption: HTMLElement,
//   figure: HTMLElement,
//   footer: HTMLElement,
//   form: HTMLFormElement,
//   h1: HTMLHeadingElement,
//   h2: HTMLHeadingElement,
//   h3: HTMLHeadingElement,
//   h4: HTMLHeadingElement,
//   h5: HTMLHeadingElement,
//   h6: HTMLHeadingElement,
//   head: HTMLHeadElement,
//   header: HTMLElement,
//   hgroup: HTMLElement,
//   hr: HTMLHRElement,
//   html: HTMLHtmlElement,
//   i: HTMLElement,
//   iframe: HTMLIFrameElement,
//   img: HTMLImageElement,
//   input: HTMLInputElement,
//   ins: HTMLModElement,
//   kbd: HTMLElement,
//   label: HTMLLabelElement,
//   legend: HTMLLegendElement,
//   li: HTMLLIElement,
//   link: HTMLLinkElement,
//   main: HTMLElement,
//   map: HTMLMapElement,
//   mark: HTMLElement,
//   menu: HTMLMenuElement,
//   meta: HTMLMetaElement,
//   meter: HTMLMeterElement,
//   nav: HTMLElement,
//   noscript: HTMLElement,
//   object: HTMLObjectElement,
//   ol: HTMLOListElement,
//   optgroup: HTMLOptGroupElement,
//   option: HTMLOptionElement,
//   output: HTMLOutputElement,
//   p: HTMLParagraphElement,
//   picture: HTMLPictureElement,
//   pre: HTMLPreElement,
//   progress: HTMLProgressElement,
//   q: HTMLQuoteElement,
//   rp: HTMLElement,
//   rt: HTMLElement,
//   ruby: HTMLElement,
//   s: HTMLElement,
//   samp: HTMLElement,
//   script: HTMLScriptElement,
//   search: HTMLElement,
//   section: HTMLElement,
//   select: HTMLSelectElement,
//   slot: HTMLSlotElement,
//   small: HTMLElement,
//   source: HTMLSourceElement,
//   span: HTMLSpanElement,
//   strong: HTMLElement,
//   style: HTMLStyleElement,
//   sub: HTMLElement,
//   summary: HTMLElement,
//   sup: HTMLElement,
//   table: HTMLTableElement,
//   tbody: HTMLTableSectionElement,
//   td: HTMLTableCellElement,
//   template: HTMLTemplateElement,
//   textarea: HTMLTextAreaElement,
//   tfoot: HTMLTableSectionElement,
//   th: HTMLTableCellElement,
//   thead: HTMLTableSectionElement,
//   time: HTMLTimeElement,
//   title: HTMLTitleElement,
//   tr: HTMLTableRowElement,
//   track: HTMLTrackElement,
//   u: HTMLElement,
//   ul: HTMLUListElement,
//   var: HTMLElement,
//   video: HTMLVideoElement,
//   wbr: HTMLElement,
// };

function a() {
  let ret = [];
  for (const key in keyobj) {
    ret.push(`'${key}'`);
  }
  let sc = ret.join(' | ');
  console.log(sc);
}

a();

// /**
//  * @typedef {'abort' | 'animationcancel' | 'animationend' | 'animationiteration' | 'animationstart' | 'auxclick' | 'beforeinput' | 'beforetoggle' | 'blur' | 'cancel' | 'canplay' | 'canplaythrough' | 'change' | 'click' | 'close' | 'compositionend' | 'compositionstart' | 'compositionupdate' | 'contextmenu' | 'copy' | 'cuechange' | 'cut' | 'dblclick' | 'drag' | 'dragend' | 'dragenter' | 'dragleave' | 'dragover' | 'dragstart' | 'drop' | 'durationchange' | 'emptied' | 'ended' | 'error' | 'focus' | 'focusin' | 'focusout' | 'formdata' | 'gotpointercapture' | 'input' | 'invalid' | 'keydown' | 'keypress' | 'keyup' | 'load' | 'loadeddata' | 'loadedmetadata' | 'loadstart' | 'lostpointercapture' | 'mousedown' | 'mouseenter' | 'mouseleave' | 'mousemove' | 'mouseout' | 'mouseover' | 'mouseup' | 'paste' | 'pause' | 'play' | 'playing' | 'pointercancel' | 'pointerdown' | 'pointerenter' | 'pointerleave' | 'pointermove' | 'pointerout' | 'pointerover' | 'pointerup' | 'progress' | 'ratechange' | 'reset' | 'resize' | 'scroll' | 'scrollend' | 'securitypolicyviolation' | 'seeked' | 'seeking' | 'select' | 'selectionchange' | 'selectstart' | 'slotchange' | 'stalled' | 'submit' | 'suspend' | 'timeupdate' | 'toggle' | 'touchcancel' | 'touchend' | 'touchmove' | 'touchstart' | 'transitioncancel' | 'transitionend' | 'transitionrun' | 'transitionstart' | 'volumechange' | 'waiting' | 'webkitanimationend' | 'webkitanimationiteration' | 'webkitanimationstart' | 'webkittransitionend' | 'wheel'} eventA
//  */

// /**
//  * @typedef {'a' | 'abbr' | 'address' | 'area' | 'article' | 'aside' | 'audio' | 'b' | 'base' | 'bdi' | 'bdo' | 'blockquote' | 'body' | 'br' | 'button' | 'canvas' | 'caption' | 'cite' | 'code' | 'col' | 'colgroup' | 'data' | 'datalist' | 'dd' | 'del' | 'details' | 'dfn' | 'dialog' | 'div' | 'dl' | 'dt' | 'em' | 'embed' | 'fieldset' | 'figcaption' | 'figure' | 'footer' | 'form' | 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'head' | 'header' | 'hgroup' | 'hr' | 'html' | 'i' | 'iframe' | 'img' | 'input' | 'ins' | 'kbd' | 'label' | 'legend' | 'li' | 'link' | 'main' | 'map' | 'mark' | 'menu' | 'meta' | 'meter' | 'nav' | 'noscript' | 'object' | 'ol' | 'optgroup' | 'option' | 'output' | 'p' | 'picture' | 'pre' | 'progress' | 'q' | 'rp' | 'rt' | 'ruby' | 's' | 'samp' | 'script' | 'search' | 'section' | 'select' | 'slot' | 'small' | 'source' | 'span' | 'strong' | 'style' | 'sub' | 'summary' | 'sup' | 'table' | 'tbody' | 'td' | 'template' | 'textarea' | 'tfoot' | 'th' | 'thead' | 'time' | 'title' | 'tr' | 'track' | 'u' | 'ul' | 'var' | 'video' | 'wbr'} elementTag
//  */
